package cn.yitun.chat.yitunserverfilecore.dao;

import cn.yitun.chat.yitunservercommonlib.crud.base.BootDao;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupHeadDataDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupHeadDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.userchat.UserHeadDataDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.common.FileDataInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.group.GroupHeadDataInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.userchat.UserHeadData;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.userchat.UserHeadDataInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupHeadDataVo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupHeadVo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.userchat.UserHeadDataVo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.userchat.UserHeadVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 描述：
 * @author yitun
 * @date 2015年12月30日 下午8:39:32
 * @version 0.0.1
 */
@Mapper
public interface FileDataDao extends BootDao<FileDataInfo> {

    /**
     * 保存用户头像信息
     * @param fd
     * @return
     */
    int saveUserHeadData(UserHeadDataDto fd);
    /**
     * 保存群组头像信息
     * @param fd
     * @return
     */
    int saveGroupHeadData(GroupHeadDataDto fd);

    UserHeadDataInfo getUserHeadData(@Param("id") Long id);

    UserHeadDataInfo getUserHeadDataByUserId(@Param("userId") Long userId);

    GroupHeadDataInfo getGroupHeadData(@Param("groupHeadId") Long id);

    GroupHeadDataInfo getGroupHeadDataByGroupId(@Param("groupId") Long groupId);

    int removeUserHead(@Param("id") Long id);

    int removeGroupHead(@Param("id") Long id);

    int removeUserHeadByUserId(@Param("userId") Long userId);

    int removeGroupHeadByGroupId(@Param("groupId") Long groupId);

    /**
     * 查询群头像 计数
     */
    int countGroupHeadDataByGroupId(@Param("groupId") Long groupId);
}
